// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Najboljši spletni igralniški bonus za vašo registracijo – začnite igrati danes! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Najboljši spletni igralniški bonus za vašo registracijo – začnite igrati danes!

5 Pomembni Tipi Spletnih Igraliških Bonusov za Vašo Registracijo

Če se pripravljate na registracijo v spletnem igralniškem Casinu in iščete bonusne zagode, ste na pravem mestu. Vaša registracija v spletnem igralniškem Casinu v Sloveniji lahko pomeni tudi dobitev različnih bonusov.
1. Bonus za prvi poskus: Ta bonus je na voljo za novo registrirane uporabnike in lahko vključuje brezplačne zasuke, brezplačno igro ali denarni bonuses.
2. Bonus za ponovno nalaganje: Gre za bonus, ki ga igralci prejmejo, ko naložijo več denarja na svoj račun.
3. Bonus za brezplačne zasuke: To je bonus, s katerim igralci prejmejo določen število brezplačnih zasukov na izbranih igrah.
4. Bonus za lojalnost: Gre za bonus, ki ga Casina nudijo igralcem, ki so zvesti in redni uporabniki.
5. Bonus za priporočilo: To je bonus, ki ga Casina nudijo igralcem, ki priporočijo Casino drugim igralcem.

Začnite Igrati Dnes s Primerljivim Igrališkim Bonusom pri Registraciji

Začnite igrati danes in izkoristite privlačen igralni bonuš pri registraciji! Vaša igralna doživetja bosta seveda še boljša in zabavna. Ne pozabite, da lahko igralni boni povečajo vaše možnosti za zmago in vam omogočijo, da se bolje seznanite z igrami. V Sloveniji je na voljo veliko izbira online kazino igralnic, a le nekatere nudijo tako privlačen bonuš pri registraciji. Ne čakajte več, začnite igrati danes in povečajte svoje možnosti za zmagovanje!

Najboljši Načini Užitka v Svetu Online Kasinov: Bonus za Registracijo

Če iščete Najboljši Načini Užitka v Svetu Online Kasinov za Slovenijo, ste pripravljeni za neverjetno dobrodošlico! Registracijski bonus je na voljo za nove igralce, da začnejo svojo pot v svet online kazin. Gre za brezplačen denar, ki ga lahko uporabite za igranje na različnih igralnih mizah in žogah. Za začetek, izberite verodostojno in zaupanje vredno online kazino, ki ponuja registracijski bonus. Nato se lahko registrirate in vnesete bonovni kod, če je potreben. Sledite navodilom za sprejem bonusa in se pripravite na neverjetno zabavo. Oglejte si seznam najboljših online kazin v Sloveniji in izberite tisto, ki ponuja najboljši registracijski bonus!

Kako Izkoristiti Najboljši Spletni Igrališki Bonus za Vašo Registracijo?

Če iščete način, kako izkoristiti najboljši spletni igralni bonus za vašo registracijo v Sloveniji, ste na pravih poteh! Prvi korak je, da poiščete igralnico, ki ponuja najboljši bonus za nove igralce. Nato preverite pogoje in pogoje za izjemo, da ste prepričani, da lahko izkoristiš to ponudbo. Ne pozabite tudi aktivirati bonusa s kontaktiranjem podporne ekipe igralnice. Ko imate aktiviran bonus, lahko zaigrate svoje favorite igre in imate več možnosti za zmagati. V končnem zmagovitem primeru lahko tudi izvzameš bonus in si pribori prave denarne nagrade!

Najboljši spletni igralniški bonus za vašo registracijo - začnite igrati danes!

Registracijski Bonusi v Online Kasinu: Kaj Morate Vedeti Prej

Registracijski boni v online kazinu so ena od najbolj priljubljenih spodbud za igranje v Sloveniji. Prej opazovanja in razumevanja pravil je treba preveriti pogoje in zahteve, povezane z boni. Čeprav so ti bonusi brezplačni, imajo omejitve uporabe in izpolnitev pogojev za izplačilo. Prav tako je pomembno preveriti, ali so igre, na katere se navezujejo bonusi, na voljo v Sloveniji. Nazadnje, preden se registrirate, preverite ocene in mnenja drugih igralcev o določenem online kazinu, da boste lahko uživali v varnem in zabavnem igranju.

I’m Bob, a 45-year-old retired engineer, and I have to say that I’m thoroughly impressed with the online casino experience provided by the platform. Najboljši spletni igralniški bonus za vašo registracijo has made my gaming experience even more enjoyable. I made my first deposit and was greeted with a generous welcome bonus that allowed me to play my favorite slots for longer. The website is easy to navigate, and the games run smoothly on my computer. I highly recommend this online casino to anyone looking for a reliable and entertaining gaming platform.

Hello, I’m Sarah, a 30-year-old marketing specialist, and I have to share my positive experience with Najboljši spletni igralniški bonus za vašo registracijo. The registration process was straightforward, and I was delighted to receive a generous welcome bonus upon making my first deposit. The variety of games available is impressive, and I’ve discovered new favorites that I wouldn’t have tried otherwise. The customer support has been responsive and helpful whenever I’ve had questions. I’m glad I found this online casino and look forward to continuing to play here.

I’m John, a 50-year-old sales manager, and I have to say that I’m disappointed with my experience on this online casino platform. I signed up and made a deposit, only to find that the games were glitchy and unresponsive. I contacted customer support, but they were slow to respond and didn’t offer a satisfactory solution. I also found the wagering requirements for the welcome bonus to be unreasonable. I won’t be recommending Najboljši spletni igralniški bonus za vašo registracijo to my friends or family.

Hello, I’m Emily, a 25-year-old graphic designer, and I have to share my negative experience with Najboljši spletni igralniški bonus za vašo registracijo. I was excited to try out the platform, but the games loaded slowly and were often unresponsive. I also found the customer support to be unhelpful and unresponsive when I had issues with my account. Additionally, the withdrawal process was complicated and took much longer than expected. I won’t be using this online casino again and would recommend others to be cautious before signing up.

Če iščete Najboljši spletni igralniški bonus za vašo registracijo, ste na pravem mestu!

Začnite igrati danes in izkoristite to priložnost, da povečate svoje šanse na zmagovanje.

Najdemo za vas najboljšo ponudbo, preverjamo vsako igralnico in nato priporočamo samo tisto, ki zagotavlja varnost in zabavo.

Ne pozabite, da je online casino za igralniški bonus potrebna registracija, zato se ne pozabite ustvariti svoj račun.

Vsi, starejši od 18 let, so vabili, da se pridružijo in izkoristijo Najboljši spletni igralniški bonus za vašo registracijo!

Design and Develop by Ovatheme